import {
  COMMON_STATUS,
  COMMON_STATUS_LABELS,
  type CommonStatus,
  COMMON_STATUS_VALUES
} from './common.constant';

/**
 * 角色状态常量
 * @description 复用通用状态常量
 */
export const ROLE_STATUS = COMMON_STATUS;

/**
 * 角色状态常量值
 */
export const ROLE_STATUS_VALUES = COMMON_STATUS_VALUES;

/**
 * 角色状态标签映射
 */
export const ROLE_STATUS_LABELS = COMMON_STATUS_LABELS;

/**
 * 系统角色常量
 */
export const SYSTEM_ROLE = {
  /** 超级管理员 */
  SUPER_ADMIN: 'super_admin',
  /** 管理员 */
  ADMIN: 'admin',
  /** 普通用户 */
  USER: 'user',
} as const;

/**
 * 角色标签映射
 */
export const ROLE_LABELS = {
  [SYSTEM_ROLE.SUPER_ADMIN]: '超级管理员',
  [SYSTEM_ROLE.ADMIN]: '管理员',
  [SYSTEM_ROLE.USER]: '普通用户',
} as const;

/**
 * 权限常量（示例）
 */
export const PERMISSION = {
  // 用户权限
  USER_VIEW: 'user:view',
  USER_CREATE: 'user:create',
  USER_UPDATE: 'user:update',
  USER_DELETE: 'user:delete',
  
  // 角色权限
  ROLE_VIEW: 'role:view',
  ROLE_CREATE: 'role:create',
  ROLE_UPDATE: 'role:update',
  ROLE_DELETE: 'role:delete',
  
  // 菜单权限
  MENU_VIEW: 'menu:view',
  MENU_CREATE: 'menu:create',
  MENU_UPDATE: 'menu:update',
  MENU_DELETE: 'menu:delete',
} as const;

/**
 * 角色状态类型
 */
export type RoleStatus = CommonStatus;

/**
 * 角色类型
 */
export type SystemRole = typeof SYSTEM_ROLE[keyof typeof SYSTEM_ROLE];

/**
 * 权限类型
 */
export type PermissionCode = typeof PERMISSION[keyof typeof PERMISSION];

